(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION ONLY. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Dos Memory Managers and NetWare Lite v1.X
DOCUMENT ID#: FYI.P.6076
DATE: 04Dec92
PRODUCT: NetWare Lite
PRODUCT VERSION: All versions
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Dos Memory Managers and NetWare Lite v1.X
Note: Information listed is intended for use on 386 or 486 based computers. For information on other machines, please consult your DOS manual. This document is intended to aid the user in the basic steps of loading NetWare Lite items into upper memory.
General Information
This basic overview is necessary to understand how to create the best performing servers and clients with Netware Lite.
Random Access Memory (RAM) in 386 and 486 computers has a uniform structure. The first 640 kb of memory is known as conventional memory, the location where applications load. The next 384 kb of memory is known as upper memory, where system files and other files (i.e. mouse drivers, network drivers, etc.) can be loaded if memory management software is used. On machines with more than 1 mb of RAM, the first 64 kb of memory above 1 mb is known as the HMA (High Memory Area).
NetWare Lite 1.0 has several files that may be loaded into upper memory. These files are normally loaded from the STARTNET.BAT file found in the NWLITE directory. These files are: LSL.COM, your network card driver (i.e. NE2000.COM), IPXODI A, SHARE (found in your DOS directory) and CLIENT.EXE. The proper syntax for loading these files into upper memory depends on which version of dos and memory manager you choose to use. Following are instructions to load NetWare Lite files into upper memory by using memory managers from DR DOS 6.0 and MS DOS 5.0. If you have any questions that are not answered in this document, please consult your dos documentation.
The memory manager, EMM386, will relocate software into upper memory. Without the use of the EMM386 manager, the only memory that can be used is conventional memory (the first 640 kb of memory).
DR DOS 6.0
The memory manager included with DR DOS 6.0 is EMM386.SYS. To load drivers and programs into upper memory, several steps must be followed.
Note: EMM386.SYS cannot be used with other memory managers.
The following is an example of a CONFIG.SYS file that is configured to allow access to upper memory (UMB) and HMA.
In the CONFIG.SYS file, the HIDOS=ON line should be included. This allows the computer to put information into HMA if memory is available.
EMM386.SYS
[/F=AUTO] Performs an automatic search through upper memory for a free 64kb window. This is the default.
[/B=FFFF] Relocates the DR DOS kernel, freeing space in conventional memory for use by applications. By using the ffff location of memory, the kernel will be placed into HMA (if available).
[/R=AUTO] Copies data and code from ROM (Read Only Memory) which is slow to run, into RAM (Random Access Memory) which is very fast.
[/E=[START-END]] Excludes an area of upper memory from the area being checked for availability of use. This switch should be used if an item uses a specific memory location. For example: If your NIC (Network Interface Card) had a memory address setting of CC00 and we were to use the switch [/E=CC00-CFFF], then the EMM386.SYS driver would not allow any software to occupy the same area of memory. This is a solution to random errors (e.g. the machine lockup) which may occur if the NIC driver is overwritten.
To load NetWare Lite required files into high memory in your STARTNET.BAT file, your syntax should be similiar to the following:
NETWARE LITE V1.1 NETWARE LITE V1.0
HILOAD LSL HILOAD LSL
HILOAD NE2000 HILOAD NE2000
HILOAD IPXODI A HILOAD IPXODI A
HILOAD SHARE HILOAD SHARE
HILOAD SERVER SERVER
HILOAD CLIENT HILOAD CLIENT
NOTE: SERVER SHOULD NOT BE LOADED INTO HIGH MEMORY WITH V1.0
To examine where your items are loaded into high memory, from the DOS prompt type: MEM /A /P (/A shows all information and /P pauses at the end of every screen.) From this screen you will be given several screens of information. To determine what is located in upper memory, be aware that the address A000:0000 is where conventional memory ends and upper memory begins and FFFF:0000 is where upper memory ends and the high memory area begins. For complete information on the MEM command, please refer to page 258-259 of the DR DOS 6.0 User's Guide or call the DRI Automated Fax system at 1-408-649-2344. The titles pertaining to memory management are:
Document Title
1000 Master Index. (A Complete Listing of all Files on the DRI Fax System.)
1300 DR DOS 6 Memory Management overview.
1301 Basic Memory optimization.
1302 Trouble shooting.
1303 Using 3rd party memory managers.
1305 XMS-EMS memory pool.
1306 Preventing DR DOS from loading into HMA.
1307 The MEM /A Command
1308 Gate A20 and Printing Problems
MS DOS 5.0
The memory manager included with MS DOS 5.0 is EMM386.EXE. To load drivers and programs into upper memory, several steps must be followed.
In the CONFIG.SYS file, device drivers for HIMEM.SYS and EMM386.EXE must be included and be placed in a specific order. In order to ensure the proper setup, it is best to have the device line containing HIMEM.SYS at the beginning of the CONFIG.SYS file, the second line should contain the EMM386.EXE line and the third line should contain a specification of where to load the DOS system files. For example:
DEVICE=C:\DOS\HIMEM.SYS
DEVICE=C:\DOS\EMM386.EXE /X=MMMM-NNNN NOEMS
DOS=HIGH,UMB
HIMEM.SYS
Generally, the default specifications for HIMEM.SYS are sufficient for your system. The main exception is the /MACHINE:XXXX specification, where XXXX is your machine type. Please see page 611 in the MS DOS 5.0 User's Guide for complete information.
EMM386.EXE
Switches included with EMM386.EXE which are most commonly used to increase system performance are:
[X=[MMMM-NNNN]] Where MMMM-NNNN denotes an address that EMM386.EXE will not be allowed to use. This is very useful for excluding the address of your NIC driver so it will not be overwritten by DOS. (e.g. Card memory address is set at CC00, the switch would be X=CC00-CFFF.)
[NOEMS] Allows access to upper memory and prevents access to expanded memory. Does allow access to extended memory. Other switches can be found in the MS DOS 5.0 User's Guide on pages 605-609.
DOS
The HIGH switch allows DOS to relocate the system files into a location called the HMA (High Memory Area), freeing up more conventional memory space. The UMB (Upper Memory Block) switch is for linking conventional memory with upper memory. It is a must in order to load drivers or devices into upper memory.
Remember, to load any command high, the line must follow the three lines listed above. The command to load a device high in the CONFIG.SYS file is DEVICEHIGH. The command to load a item high in the AUTOEXEC.BAT file, or any .bat file is LH or LOADHIGH.
To load the required NetWare Lite files into high memory in your STARTNET.BAT file, your syntax should be similar to this:
NETWARE LITE V1.1 NETWARE LITE V1.0
LH LSL LH LSL
LH NE2000 LH NE2000
LH IPXODI A LH IPXODI A
LH SHARE LH SHARE
LH SERVER SERVER
LH CLIENT LH CLIENT
NOTE: SERVER SHOULD NOT BE LOADED INTO HIGH MEMORY WITH V1.0
To examine where your items are loaded into high memory, from the DOS prompt type:
MEM /C |MORE (/C classifies programs by memory usage. It also displays conventional memory and upper memory in separate blocks to easily determine where programs are loaded and |MORE pauses at the end of every screen.)
For further questions and concerns about loading software into upper memory, consult the MS DOS 5.0 User's Guide.